package routers

import (
	"device-admin/internal/app/web/controller"

	"github.com/gin-gonic/gin"
)

// terminal 终端管理
func terminal(rg *gin.RouterGroup) {
	rg.GET("/version/option", controller.Terminal{}.VersionOption)                        // 终端版本选项
	rg.GET("/list", controller.Terminal{}.TerminalList)                                   // 终端列表
	rg.POST("/upgrade/version/add", controller.FirmwareVersion{}.Add)                     // 新增固件版本
	rg.POST("/upgrade/version/update", controller.FirmwareVersion{}.Update)               // 更新固件版本
	rg.GET("/upgrade/version/detail", controller.FirmwareVersion{}.Detail)                // 固件版本详情
	rg.GET("/upgrade/version/list", controller.FirmwareVersion{}.List)                    // 固件版本列表
	rg.POST("/upgrade/version/delete", controller.FirmwareVersion{}.Delete)               // 删除固件版本
	rg.GET("/upgrade/package/list", controller.Terminal{}.PackageList)                    // 升级包列表
	rg.POST("/upgrade/package/add", controller.Terminal{}.AddPackage)                     // 新增升级包
	rg.POST("/upgrade/package/update", controller.Terminal{}.UpdatePackage)               // 更新升级包
	rg.POST("/upgrade/package/delete", controller.Terminal{}.DeletePackage)               // 删除升级包
	rg.GET("/upgrade/schedule/detail", controller.Terminal{}.ScheduleDetail)              // 升级计划详情
	rg.GET("/upgrade/schedule/list", controller.Terminal{}.ScheduleList)                  // 升级计划
	rg.POST("/upgrade/schedule/add", controller.Terminal{}.AddSchedule)                   // 新增升级计划
	rg.POST("/upgrade/schedule/update", controller.Terminal{}.UpdateSchedule)             // 更新升级计划
	rg.POST("/upgrade/schedule/delete", controller.Terminal{}.DeleteSchedule)             // 删除升级计划
	rg.GET("/upgrade/schedule/upgrade-terminals", controller.Terminal{}.UpgradeTerminals) // 升级计划终端列表
	rg.POST("/upgrade/schedule/start-upgrade", controller.Terminal{}.StartUpgrade)        // 开始安装(手动更新)
	rg.POST("/upgrade/schedule/batch-install", controller.Terminal{}.BatchInstall)        // 批量安装升级
	rg.GET("/config", controller.TerminalConfig{}.GetConfigs)                             // 获取终端配置
	rg.GET("/config-log", controller.TerminalConfig{}.GetConfigLogs)                      // 获取终端配置日志
	rg.POST("/save-config", controller.TerminalConfig{}.SaveConfig)                       // 保存终端配置
	rg.GET("/log/list", controller.TerminalLog{}.LogList)                                 // 日志列表
	rg.GET("/log/content", controller.TerminalLog{}.DownloadLog)                          // 下载日志
}
